package com.means.polymerize.common.constants;

/**
 * Web 过滤器顺序的枚举类，保证过滤器按照符合我们的预期
 * <p>
 * 考虑到每个 starter 都需要用到该工具类，所以放到 common 模块下的 util 包下
 *
 * @author xuhaifeng
 * @date 2021.05.05
 */
public interface WebFilterOrderEnum {
    /**
     * The constant CORS_FILTER.
     */
    int CORS_FILTER = Integer.MIN_VALUE;
    /**
     * The constant TRACE_FILTER.
     */
    int TRACE_FILTER = CORS_FILTER + 1;
    /**
     * The constant REQUEST_BODY_CACHE_FILTER.
     */
    int REQUEST_BODY_CACHE_FILTER = Integer.MIN_VALUE + 500;
    /**
     * 需要保证在 RequestBodyCacheFilter 后面
     */
    int API_ACCESS_LOG_FILTER = -104;
    /**
     * 需要保证在 RequestBodyCacheFilter 后面
     */
    int XSS_FILTER = -103;
    /**
     * Spring Security Filter 默认为 -100，可见 SecurityProperties 配置属性类
     */
    int DEMO_FILTER = Integer.MAX_VALUE;
}
